// 入口文件 
// 1.引入路由插件sem-router
import SMERouter from 'sme-router'

// 4.引入axios
import axios from 'axios'

// 2,引入视图文件  (所有视图文件起名都加view)
// import loginView from '$v/login'
// import advView from '$v/adv'
// console.log(loginView,advView);
// 此时引入了html文件,需要安装html-loader.这里答应的是html文件的内容,已字符串的形式打印的
// 所以下方路由返回出这个结果即可
// 引入视图,如果引入的是html文件,则得到的是字符串,直接供路由的render方法使用
// 3.引入视图文件
// import advListView from '$v/advList'
// import adminListView from '$v/adminList'
// 4.引入axios实例
// import request from './util/request'

// 5引入路由函数
import loginRoute from '$r/login';
import advRoute from '$r/adv';
import advListRoute from '$r/advList';
import adminListRoute from '$r/adminList';


// 实例化路由器对象,并传入
const router = new SMERouter('app', 'html5')
// 因为在其他地方可能用到router,我们可以把router放在window对象上，router可以在任意地方访问
window.router = router;

// 配置路由.一个登陆页面还有一个广告展示的首页分别建立路由 // 1.登录页面的路由.login登录的意思
// router.route('/login', (req, res) => {
    // res.render('我是登录页面')
    // res.render(loginView)
    //ejs需要进行调用
    // res.render(loginView({name:'二狗子'}))
    //引入视图模板,现在不需要传值来测试了
    // res.render(loginView())
// })


// 广告管理系统页面路由
// router.route('/adv',(req,res)=>{
// res.render('我是广告页面')
// res.render(advView)
// res.render(advView({
//     person:['狗蛋','小明','丫丫']
// }))
//     res.render(advView())
// })

// 配置adv 及其二级路由 .因读二级路由就得先读一级路有,这里需要用到next()方法向下传递
// 一级路由
// router.route('/adv', (req, res, next) => {
    // res.render(advView({
    //     subRoute:res.subRoute()
    // }));
    // next(advView({
    //     subRoute: res.subRoute(),
        // 给adv主页传递一个路径,方便在页面进行url比较,进行高亮显示
//         url: req.url
//     }));
// })


// 二级路由
// router.route('/adv/adminList', (req, res) => {
    // res.render('我是管理员列表')
    // 渲染二级路由视图
    // res.render(adminListView());

    // 添加管理员功能,给保存按钮绑定点击事件,添加管理员
    // 1,获取保存按钮元素
    // const oSaveAdminBtn = document.getElementById('saveAdminBtn')
    // 2,给按钮添加点击事件,点击后发送请求
    // oSaveAdminBtn.onclick =async function () {
        // 可以通过表单的name属性获取元素,获取输入的内容. trim()去除输入内容的前后空格
        // const adminNameValue = document.adminForm.adminName.value.trim();
        // const passwordValue = document.adminForm.password.value.trim();
        // const rePasswordValue = document.adminForm.rePassword.value.trim();

        // 判断所有输入内容不能为空
        // if (!adminNameValue || !passwordValue || !rePasswordValue) {
        //     return alert('输入内容不能为控')
        // }
        // 判断密码是否一致
        // if (passwordValue !== rePasswordValue) {
        //     return alert('两次输入密码不一致')
        // }
        // 信息输入无误,就会向后端发送添加管理员请求了
        // axios.post('/api1/addAdmin', {
        //     adminName: adminNameValue,
        //     password: passwordValue,
        //     regTime:new Date().toLocaleString()
        // })
        // 发出请求后我们需要接收,定义一个变量接收,发送中有可能出错,需要用try{}catch(e){}来处理
        // try {
        //     await request.post('/addAdmin', {
        //         adminName: adminNameValue,
        //         password: passwordValue,
        //         regTime: new Date().toLocaleString()
        //     })
            // alert('添加成功')
            // 添加成功后,关闭窗口(手动触发关闭按钮上的点击事件)
            // document.getElementById('clossAdd').click()
            // 清空表单
    //         document.adminForm.reset()
    //     } catch (e) {
    //         alert('添加异常' + e.message)
    //         document.adminForm.reset()
    //     }
    // }
// })

// router.route('/adv/advList', (req, res) => {
//     res.render(advListView())
// })


// 配置路由
router.route('/login',loginRoute)

// 配置adv及其二级路由
router.route('/adv', advRoute)

router.route('/adv/adminList',adminListRoute)

router.route('/adv/advList',advListRoute)

// 4.2测试ajax请求,测试后前端
// axios.get('/api1/test')
// 开始添加管理员功能了,不用再进行ajax请求测试,可以先注掉
